;:sys36864 ;.opt oo *= $c800 vic =$d000 page =648 bank =56576 clrscr =$e544 cint =$ff81 switch =$291 tmp =2 konf =1 irqvec =$314 oldirq =$ea31 adr1 =58200 adr2 =58208 alt1 =$eb84 alt2 =$ebc5 alt3 =$ec06 keyvec =$28f altkey =$eae4 akt =$f5 tabtab =$eb79 keynr =$cb f1 =133 f8 =$8c shift =$28d calc =$e9f0 farbram =$ea24 bild =$d1 farb =$f3 zeile =214 getx =$b7f1 komma =$aefd frestr =$b6a3 strres =$b475 qfindvar =$b08b strout =$ab1e para =$61 varadr =$49 crs1 =$cc crs2 =$cd crs3 =$cf latch =$c000 print =$ffd2 getkey =$ffe4 space =$ab3f frmevl =$ad9e stradr =$22 str1 =247 str2 =249 illquan =$b248 latch2 =$c100 clrx =$e9ff setcr =58732 spalte =211 return =$aad7 pointer =2040+49152 esc =123 getpar =57812 load =$ffd5 readst =$ffb7 loadver =10 error1 =57593 error2 =57756 quote =212 jmp text jmp pic jmp irqon jmp irqoff jmp blocksatz jmp inform jmp title jmp decode jmp wandel jmp laden flag brk cnt1 .byt 1 cnt2 .byt 1 cnt3 .byt 1 cnt4 .byt 1 merk .byt 55 lan brk blpos brk line1 brk line2 brk point1 brk point2 brk wart brk time brk step .byt 1 set4 .byt 4 tuerk .byt 1 neue .byt 164,165,166,170,167,168,169,163 delt .byte "\x9d \x9d" brk findvar jmp qfindvar text jsr vicinit lda #148 sta bank lda #24 sta vic+24 lda #196 sta page lda #128 sta switch ldx #0 jsr swap jmp clrscr pic jsr vicinit ldx #-1 jsr swap ldx #4 ldy #0 sty tmp lda #196 sta page sta tmp+1 lda #148 sta bank lda #18 colin sta (tmp),y iny bne colin inc tmp+1 dex bne colin lda #29 sta vic+24 lda #59 sta vic+17 lda #216 sta vic+22 sty pointer ldx #63 tya clrsp sta latch,x dex bne clrsp lda #1 sta vic+21 lda #40 sta vic lda #58 sta vic+1 inc vic+29 ldx #15 lda #-1 sp sta latch,x dex bpl sp lda #216 sta tmp+1 ldx #4 lda #1 colram sta (tmp),y iny bne colram inc tmp+1 dex bne colram rts swap cpx flag bne scheisse rts scheisse sei lda konf pha lda #48 sta konf ldy #0 sty tmp sty tmp+2 lda #160 sta tmp+1 lda #224 sta tmp+3 ldx #32 swaplp lda (tmp),y pha lda (tmp+2),y sta (tmp),y pla sta (tmp+2),y dey bne swaplp inc tmp+1 inc tmp+3 dex bne swaplp lda flag eor #-1 sta flag pla sta konf cli rts vicinit jsr cint lda #0 sta vic+32 sta vic+33 jmp keyinit ram lda konf sta merk lda #48 sta konf rts rom lda merk sta konf rts irqon sei lda #neuirq set sta irqvec sty irqvec+1 cli rts irqoff sei lda #oldirq bne set neuirq lda tmp pha lda tmp+1 pha jsr ram jsr irq jsr rom pla sta tmp+1 pla sta tmp jmp oldirq irqok dec cnt1 bne nix1 lda #4 sta cnt1 lda #adr1 sta tmp sty tmp+1 ldy #0 lda adr1 pha copy1 iny lda (tmp),y dey sta (tmp),y iny cpy #7 bcc copy1 pla sta (tmp),y nix1 dec cnt2 bne nix2 lda #3 sta cnt2 lda #adr2 sta tmp sty tmp+1 ldy #7 copy2 lda (tmp),y asl adc #0 sta (tmp),y dey bpl copy2 nix2 dec cnt3 bne nix3 lda #3 sta cnt3 lda #adr2 sta tmp sty tmp+1 ldy #7 lda (tmp),y pha copy3 dey lda (tmp),y iny sta (tmp),y dey bne copy3 pla sta (tmp),y nix3 dec cnt4 bne nix4 lda set4 sta cnt4 lda #adr2 sta tmp sty tmp+1 ldy #7 copy4 lda (tmp),y lsr bcc nix7 ora #128 nix7 sta (tmp),y dey bpl copy4 nix4 dec tuerk beq manage rts irq lda flag bne nix4 jmp irqok manage lda #12 sta tuerk lda set4 clc adc step sta set4 cmp #2 bcc turn cmp #5 bcc rtt turn lda step eor #254 sta step rtt rts keyinit lda #neukey sta keyvec sty keyvec+1 rts neukey lda shift asl cmp #8 bcc ok8 lda #6 ok8 tax lda tabtab,x sta akt lda tabtab+1,x sta akt+1 ldy keynr lda (akt),y cmp #f1 bcc normal cmp #f8+1 bcs normal sec sbc #f1 tax lda neue,x normal jmp altkey blocksatz ldx #0 lda zeile pha lda #20 sta blpos blocklp jsr calc jsr farbram testneu ldy #39 lda #" " cmp (bild),y bne voll ldy #0 cmp (bild),y beq voll lda (bild),y cmp #"!" beq rump jsr testlen bcs voll jsr sab ldy blpos suchsp lda (bild),y cmp #" " beq fund iny cpy lan bcc test2 ldy #1 test2 cpy blpos bne suchsp beq voll fund iny sty blpos ldy #39 ruk dey lda (bild),y pha lda (farb),y iny sta (farb),y pla sta (bild),y dey cpy blpos bne ruk beq hase voll inx cpx #25 bcc blocklp pla sta zeile tax jmp calc hase lda #" " sta (bild),y inc blpos bne testneu sab lda blpos beq nu cmp lan bcc x sbc lan sta blpos jmp sab x rts nu inc blpos bne sab testlen ldy #39 tl dey beq n lda (bild),y cmp #" " beq tl iny sty lan clc rts n sec rts rump ldy #1 rulo lda (bild),y pha lda (farb),y dey sta (farb),y pla sta (bild),y iny iny cpy #40 bcc rulo dey lda #" " sta (bild),y bne voll inform jsr lenght jsr findvar sta varadr sty varadr+1 jsr frestr ldx #0 stx tmp keylp lda #0 sta crs1 sta quote wkey jsr getkey beq wkey ldx #2 stx crs2 wx ldx crs3 bne wx inc crs1 cmp #13 bne letter string lda tmp jsr strres ldy #2 setpar lda para,y sta (varadr),y dey bpl setpar iny settxt cpy tmp beq carried lda latch,y sta (para+1),y iny bne settxt carried rts letter cmp #20 beq del cmp #32 bcs ok1 wrong jmp keylp ok1 cmp #128 bcc ok cmp #149 bcc wrong cmp #156 bcc ok cmp #160 bcc wrong ok ldx tmp cpx tmp+1 bcs wrong sta latch,x jsr print inc tmp jmp keylp lenght jsr getx stx tmp+1 jsr komma jmp clranf del ldx tmp beq wrong lda #delt jsr strout dec tmp jmp keylp clranf ldx tmp+1 canf beq again jsr space dex bne canf again ldx tmp+1 conf beq auto lda #"\x9d" jsr print dex bne conf auto rts sy jmp $af08 title jsr getline stx line1 jsr fre2 sta lan tay dey bpl trans1 ill jmp sy trans1 lda (stradr),y sta latch,y dey bpl trans1 jsr getline stx line2 jsr getstr pha tay dey bmi ill trans2 lda (stradr),y sta latch2,y dey bpl trans2 pla cmp lan bcc zukurz sta lan zukurz jsr getx stx wart test ldy lan lda latch2-1,y cmp #" " bne okay2 dey such2 dey lda latch2,y cmp #" " beq such2 ldx lan rueck2 lda latch2,y sta latch2-1,x dex dey bpl rueck2 lda #" " fill2 sta latch2-1,x dex bpl fill2 bmi test okay2 lda #0 sta point2 lda lan sta point1 ausgabe lda line1 sta zeile lda #0 sta spalte jsr setcr lda #"\x94" jsr print ldx point1 lda latch-1,x jsr print lda line2 sta zeile lda #1 sta spalte jsr setcr lda #20 jsr print lda #38 sta spalte jsr setcr ldx point2 lda latch2,x jsr print jsr pause inc point2 dec point1 bne ausgabe jsr getx stx time moment jsr pause dec time bne moment schieb lda line1 sta zeile lda #1 sta spalte jsr setcr lda #20 jsr print lda line2 sta zeile lda #0 sta spalte jsr setcr lda #"\x94" jsr print lda #32 ldy #39 sta (bild),y jsr return jsr pause dec lan bne schieb rts pause ldx wart ldy #0 pse dey bne pse dex bne pse rts getstr jsr komma jsr frmevl jmp frestr fre2 lda #" " ldy #0 fre3 sta latch,y sta latch2,y dey bne fre3 beq getstr getline jsr getx cpx #25 bcc okline jmp illquan okline jmp clrx decode sei jsr ram ldy #0 sty tmp sty tmp+2 lda #$e0 sta tmp+1 lda #$a0 sta tmp+3 m1 jsr get cmp #esc beq m2 jsr put jmp m1 m2 jsr get tax beq end jsr get m3 jsr put dex bne m3 beq m1 end jsr rom cli rts get lda (tmp),y inc tmp bne rt inc tmp+1 rt rts put sta (tmp+2),y inc tmp+2 bne rt inc tmp+3 rts wandel jsr getstr sta lan ldx #0 ldy #0 wandle cpy lan bcs off lda (stradr),y cmp #"\xa4" beq ae cmp #"\xa7" beq ae cmp #"\xa5" beq oe cmp #"\xa8" beq oe cmp #"\xa6" beq ue cmp #"\xa9" beq ue cmp #"\xaa" beq ss cmp #97 bcc takeit cmp #219 bcs takeit cmp #123 bcc gross1 cmp #193 bcc takeit and #$7f takeit sta latch,x inx iny bne wandle off stx tmp jsr komma jsr findvar sta varadr sty varadr+1 jsr frestr jmp string gross1 sec sbc #32 bne takeit ae lda #"a" .byt $2c oe lda #"o" .byt $2c ue lda #"u" sta latch,x inx lda #"e" bne takeit ss lda #"s" sta latch,x inx lda #"s" bne takeit laden jsr komma lda #0 sta loadver jsr getpar lda loadver ldx #0 ldy #$e0 jsr load bcc okay jmp error1 okay jsr readst and #191 beq drin jmp error2 drin rts